package com.guoqiang.method;

public class Method01 {
    public static void main(String[] args) {
        // 方法使用
        // 1. 方法写好后，如果不去调用，不会输出
        // 2. 先创建一个对象，然后调用方法即可
        PersonOne p1 = new PersonOne();
        p1.speak();     // 调用方法
        p1.cal01();     // 调用cal01方法
        p1.cal02(10000); // 调用cal02方法，并传入实参10000

        // 调用 getSum 方法，同时 num1=100, num2=20
        // 把 getSum 方法返回的值，赋给变量 result
        int result = p1.getSum(100, 200);
        System.out.println("result方法返回的值:" + result);
    }
}

class PersonOne {

    String name;
    int age;

    // 方法（也叫成员方法）；
    // 添加speck成员方法，输出“我是一个好人”
    // 以下代码解读：
    // 1. public：表示方法是公开
    // 2. void：表示方法没有返回值
    // 3. speck()：speck是方法名, ()形参列表
    // 4. { }： 方法体，可以写我们要执行的代码
    // 5. System.out.println("我是一个好人～"); 表示此方法就输出一句话
    public void speak() {
        System.out.println("我是一个好人～");
    }

    //添加cal01成员方法，可以计算从 1 + ……1000的结果
    public void cal01() {
        //使用循环完成
        int sum = 0;
        for (int i = 1; i <= 1000; i++) {
            sum += i;
        }
        System.out.println("计算结果=" + sum);
    }

    // 添加cal02成员方法，该方法可以接收一个数n，计算从 1 + ……
    // (int n)形参列表，表示当前有一个形参数 n，可以接收用户输入
    public void cal02(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        System.out.println("1~n的计算结果=" + sum);
    }

    // 添加getSum成员方法，可以计算两个数的和
    // 1. public 表示方法是公开的
    // 2. int 表示方法执行后返回一个int值
    // 3. getSum 方法名
    // 4. (int num1, int num2) 形参列表，可以接收用户传入的两个数
    // 5. return sum; 把 sum 的值返回
    public int getSum(int num1, int num2) {
        int sum = num1 + num2;
        return sum;
    }
}
